//package com.hxkj.config;
//
//
//import com.hxkj.context.PagingContextHolder;
//import com.hxkj.domain.Page;
//import lombok.extern.slf4j.Slf4j;
//import org.aspectj.lang.JoinPoint;
//import org.aspectj.lang.annotation.AfterReturning;
//import org.aspectj.lang.annotation.Aspect;
//import org.aspectj.lang.annotation.Before;
//import org.aspectj.lang.annotation.Pointcut;
//import org.springframework.data.solr.core.query.Query;
//import org.springframework.data.solr.core.query.result.ScoredPage;
//import org.springframework.stereotype.Service;
//import sun.rmi.runtime.Log;
//
//
///**
// * solr翻页拦截器
// * <p>
// * created by chenwei on 2018/5/16.
// */
//@Aspect
//@Service("solrPagingAdvices")
//@Slf4j
//public class SolrPagingAdvices {
//
//    @Pointcut("execution (* org.springframework.data.solr.core.SolrTemplate.queryForPage(..))")
//    public void pointCut() {
//
//    }
//
//    @Before("pointCut()")
//    public void before(JoinPoint joinPoint) {
//        // 翻页参数
//        Page page = PagingContextHolder.getPage();
//        if (page != null) {
//            Object[] args = joinPoint.getArgs();
//            Query query = (Query) args[0];
//            // 每页显示的条数
//            query.setRows((int) page.getPageSize());
//            // 开始页
//            query.setOffset(Math.toIntExact(page.getCurrentPage() < 0 ? 1 : (page.getCurrentPage() - 1)));
//            args[0] = query;
//        }
//
//    }
//
//
//    @AfterReturning(returning = "result", pointcut = "pointCut()")
//    public void doAfterReturning(Object result){
//        Page page = PagingContextHolder.getPage();
//        ScoredPage scoredPage = (ScoredPage) result;
//        // 总条数
//        long totalCount = scoredPage.getTotalElements();
//        log.debug("总条数:{}",totalCount );
//        page.setTotalResult(totalCount);
//    }
//
//}
